perm filename OO4.FAI[CMS,LCS] blob
sn#168980 filedate 1975-07-17 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00009 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE OO
C00004 00003 LOOP: OUTSTR CRLF
C00005 00004 EVAL: HRRZI MA,1
C00009 00005 BACK: HRRZI 6,-2(CX)
C00012 00006 GETO: HRRZI MA,(TS)
C00014 00007 SAVIT: HRRZM 6,SAVFLG
C00018 00008 PTBEG: SKIPN PTNUM
C00020 00009 TABL: REPEAT 15,{JFCL↔}
C00023 ENDMK
C⊗;
TITLE OO
EXTERNAL JOBAPR,JOBTPC,JOBCNI,JOBFF,JOBREL,JOBDDT,$I
FL←4 ↔ EN←7 ↔ TS←10 ↔ OU←11 ↔ CX←13
MA←14 ↔ N←15 ↔ P←17 ↔ MEM←17000
INT: HRRZI EN,INTRU
HRRZM EN,JOBAPR
HRRZI EN,706
HRRZM EN,MEM+1
HRRZI EN,106
HRRZM EN,MEM+2
HRRZI EN,MEM+3
HRRM EN,INTY
HRRZI EN,MEM+200
CORE EN,
HALT
FILIN: OPEN DEVN
JRST ERRO
SETZM IFNAM+3
LOOKUP IFNAM
JRST ERRO
MOVE EN,INPO
SETZ TS,
INPUT EN
HRRZ EN,MEM
HRRZI N,MEM(EN)
HRRM N,INTY
CORE N,
JRST ERRO
SUBI EN,200
JUMPLE EN,RST
IORI EN,177
MOVNS EN
HRLZI EN,-1(EN)
HRRI EN,MEM+177
INPUT EN
JRST RST
ERRO: OUTSTR QMARK
JRST RST
FILO: SUBI N,MEM
HRRZM N,MEM
IORI N,177
MOVNS N
HRLZI N,-1(N)
HRRI N,MEM-1
OPEN DEVN
JRST ERRO
SETZM OFNAM+3
ENTER OFNAM
JRST ERRO
SETZ 16,
OUTPUT N
RELEAS
RST: RESET
SETZM PTNUM
MOVE P,PDPO
MOVE EN,IPC
INTENB EN,
LOOP: OUTSTR CRLF
PUSHJ P,INTY
PUSHJ P,EVAL
HRRM TS,INTY
MOVEM EN,TMP
PUSHJ P,GETO
JRST LOOP+1
INTY: HRRZI N,MEM+3
HRRZI TS,(N)
OUTSTR ASTR
IWAIT
INCHRS EN
JRST .-2
INLIN: HRRZM EN,(TS)
SETZM 1(TS)
ADDI TS,2
INCHRS EN
CAIA
JRST INLIN
SKIPL OU,LITFL
JRST (OU)
POPJ P,
STLIT: IWAIT
INCHRS LITCHR
JRST .-2
HRRZI 6,LITCK
HRRZM 6,LITFL
SUBI TS,2
SUB P,TWOB
PUSH P,RETRN
JRST INTY+4
LITCK: CAME EN,LITCHR
JRST INTY+3
SETOM LITFL
POPJ P,
EVAL: HRRZI MA,1
HRRZI CX,(N)
JRST BGIN
MVM: HRLI OU,400000(MA)
HRRZI 6,2
JRST LMVM
LAEQ: HRRZI 6,2
CAIE OU,(MA)
ADDI 6,2
SUBI 5,2
HLL OU,(5)
LMVM: MOVEM OU,(5)
SETZM 1(5)
ADDI 5,2
SUBI TS,(6)
ADDI 6,(5)
HRLZI 6,(6)
HRRI 6,(5)
BLT 6,(TS)
JRST LKMO
FDEQ: MOVE 4,MEM(MA)
HRRZI 5,(N)
LKMO: CAMN 4,(5)
JRST EQU
ADIN: ADDI 5,2
CAIGE 5,(TS)
JRST LKMO
ADDI MA,2
BGIN: CAIGE MA,-MEM(N)
JRST FDEQ
HRRZI MA,-MEM(CX)
ADDI N,2
CAIGE N,(TS)
JRST FDEQ
JRST BACK
EQU: HRRZI OU,(MA)
CAILE TS,2(5)
CAIG N,MEM+2(MA)
JRST CKLA
MOVE 6,MEM+2(MA)
CAMN 6,2(5)
HRRI OU,2(MA)
CKLA: CAIL 5,2(N)
SKIPL 6,-2(5)
JRST .+3
CAIN MA,2(6)
JRST LAEQ
CAIE OU,(MA)
JRST MVM
SKIPL 1(5)
SKIPN 6,MEM+1(OU)
JRST ADIN
TLNN 6,777777
XCT TABL(6)
DOUT: HRLI OU,400001(OU)
AOJ OU,
MOVEM OU,1(5)
CAIGE CX,-2(TS)
JRST ADIN
BACK: HRRZI 6,-2(CX)
ADDI 6,2
SKIPGE 1(6)
JRST NEGA+1
SKIPGE OU,(6)
AOBJN OU,NEGA
HRRZI OU,-MEM(6)
HRLI OU,400000(OU)
NEGA: MOVEM OU,1(6)
CAIGE 6,-2(TS)
JRST BACK+1
CAIE TS,2(CX)
JRST NOT1
SUBI TS,2
MOVE EN,(TS)
SUB OU,ONEB
CAME OU,EN
CAIN CX,MEM(OU)
AOBJN OU,NEW1
SKIPL FL,SAVFLG
AOBJN OU,FIXIT
HRRZI EN,MEM+1(OU)
ADD OU,ONEB
POPJ P,
NEW1: SKIPGE FL,SAVFLG
POPJ P,
HRRZI OU,-MEM+1(CX)
HRLI OU,400000(OU)
JRST ADTS
NOT1: HRRZI EN,-MEM-2(TS)
HRLI EN,400000-MEM(CX)
MOVE OU,EN
ADD OU,ONEB
SKIPGE FL,SAVFLG
POPJ P,
MOVEM EN,(TS)
MOVEM OU,1(TS)
HRRZI OU,-MEM+1(TS)
HRLI OU,400000(OU)
ADTS: ADDI TS,2
FIXIT: SKIPL EN,TMP
JRST CKFLS
MOVEM EN,(TS)
HRRZI EN,1(TS)
ADDI TS,2
CKFLS: PUSHJ P,(FL)
SETOM SAVFLG
POPJ P,
GETO: HRRZI MA,(TS)
HRLI MA,700
SKIPE PTOFL
HRLI MA,1100
ADDI TS,200
TLZN OU,400000
TRNN OU,400000
JRST GOUT
MOVE EN,OU
HRRZI 4,777775
JRST MKOUT
PUDO: HRLI OU,(4)
PUSH TS,OU
MOVE OU,EN
GOUT: HLRZ 4,OU
MOR: MOVE EN,MEM(4)
TLZE EN,400000
JRST PUDO
TRNN EN,400000
JRST DPCH
MKOUT: HLRZ 6,EN
HRLI EN,(EN)
TRZ EN,400000
MOVEM EN,MEM(6)
CAIA
DPCH: IDPB EN,MA
ADO: ADDI 4,2
CAIG 4,(OU)
JRST MOR
TLNN TS,777777
JRST TYOUT
POP TS,OU
HLRZ 4,OU
JRST ADO
TYOUT: HRRZI EN,15
IDPB EN,MA
HRRZI EN,12
IDPB EN,MA
SETZ EN,
IDPB EN,MA
SUBI TS,177
SKIPE PTOFL
JRST PTOUT
OUTSTR SPACE
OUTSTR (TS)
POPJ P,
SAVIT: HRRZM 6,SAVFLG
OUTSTR CRLF
MOVE OU,-1(5)
FIXTS: SUBI TS,2
SUB P,ONEB
JRST BGIN-1
CRFIX: CAIGE 5,-2(TS)
POPJ P,
JRST FIXTS
INDER: HRRZI 6,.+2
JRST SAVIT
MOVEM OU,(EN)
POPJ P,
LITA: HRRZI 6,.+2
JRST SAVIT
SUB OU,ONEB
MOVEM OU,(EN)
POPJ P,
RPLACE: HRRZI 6,.+2
JRST SAVIT
HRR OU,MEM(OU)
TLZ OU,400000
TRO OU,400000
MOVEM OU,(EN)
POPJ P,
ADER: HRRZI 6,.+2
JRST SAVIT
MOVE 4,MEM-1(OU)
MOVEM 4,2(TS)
CAIE TS,1(OU)
JRST OLD1
SUBI TS,2
MOVE OU,(OU)
OLD1: MOVEM OU,3(TS)
MOVE 5,(EN)
MOVE 4,MEM-1(5)
MOVEM 4,(TS)
MOVEM 5,1(TS)
HRRZI OU,-MEM+2(TS)
HRLI OU,400000-MEM(TS)
MOVEM OU,4(TS)
AOBJP OU,
MOVEM OU,5(TS)
HRRZI OU,-MEM+5(TS)
HRLI OU,400000(OU)
MOVEM OU,(EN)
ADDI TS,6
POPJ P,
PTBEG: SKIPN PTNUM
PTYGET PTNUM
POPJ P,
HRRZI 6,5
HRRZM 6,PTNUM+1
PTJOBX PTNUM
POPJ P,
SETOM PTOFL
JRST FIXTS
PTEND: SKIPN PTNUM
POPJ P,
PTYREL PTNUM
SETZM PTNUM
SETZM PTOFL
POPJ P,
PTON: SKIPE PTNUM
SETOM PTOFL
POPJ P,
PTOFF: SETZM PTOFL
POPJ P,
PTCALL: SKIPN PTNUM
POPJ P,
MOVE 6,CALLC
MOVEM 6,(TS)
PTOUT: MOVE EN,PTNUM
PTWRS9 EN
POPJ P,
INTRU: MOVE EN,JOBCNI
TLNE EN,20000
DISMIS
IMSKCL 1,EN
MOVE OU,JOBTPC
TRNE EN,20000
JRST CORUP
CAIE OU,.+7
MOVEM OU,IPC+1
UWAIT
DEBREAK
HRRZ 1,PTNUM
POLO: PTOCNT 1
SKIPG 2
INTJEN IPC
HRRZI 2,PTNUM+2
PTRDS 1
OUTSTR (2)
JRST POLO
CORUP: SOJ OU,
MOVEM OU,IPC+1
UWAIT
DEBREAK
HRRZ 1,JOBREL
AOJ 1,
CORE 1,
JRST TABL+77
INTJEN IPC
TABL: REPEAT 15,{JFCL↔}
PUSHJ P,CRFIX
REPEAT 24,{JFCL↔}
PUSHJ P,STLIT
REPEAT 11,{JFCL↔}
PUSHJ P,PTON
JFCL
PUSHJ P,PTOFF
REPEAT 13,{JFCL↔}
PUSHJ P,INDER
REPEAT 4,{JFCL↔}
JSR $I
JFCL
PUSHJ P,ADER
JFCL
PUSHJ P,PTCALL
REPEAT 2,{JFCL↔}
PUSHJ P,FILIN
REPEAT 4,{JFCL↔}
PUSHJ P,PTEND
PUSHJ P,LITA
REPEAT 2,{JFCL↔}
PUSHJ P,FILO
PUSHJ P,PTBEG
JFCL
PUSHJ P,RPLACE
REPEAT 54,{JFCL↔}
PDPO: IOWD 100,PDL
PDL: BLOCK 100 ↔ PTOFL: 0
IPC: 21000,,20000 ↔ 0
DEVN: 17 ↔ SIXBIT/DSK/ ↔ 0
IFNAM: SIXBIT/ALY/ ↔ SIXBIT/OOP/ ↔ BLOCK 2
OFNAM: SIXBIT/LAST/ ↔ SIXBIT/OOP/ ↔ BLOCK 2
INPO: IOWD 200,MEM ↔ QMARK: 45767706424
CRLF: 64240,,0 ↔ ASTR: ASCIZ/*/
SPACE: ASCIZ/ / ↔ CALLC: 600600,,0
TMP: 0 ↔ SAVFLG: -1
LITFL: -1 ↔ LITCHR: LITCK
ONEB: 1,,1 ↔ TWOB: 2,,2
RETRN: LOOP+2 ↔ PATCH: BLOCK 100
PTNUM: 0 ↔ BLOCK 400
END INT